流量控制与滑动窗口机制
## 停止-等待协议(S-W)
- 滑动窗口机制 ->
- 确认机制 -> 确认帧ACK_i
- 重传机制 -> 超时重传
- 帧编号 -> 1bit给帧编号;
数据帧传输的多种情况
- 正常传输
- 数据帧丢失
- 确认帧丢失 -> 接收方窗口滑动后接收上一帧, 重发确认帧
- 数据帧有误 -> 接收方直接丢弃, 不返回确认帧
注意发送方接收正确确认帧时滑动窗口, 接收方接收正确数据帧时滑动窗口
后退N帧协议(GBN)
- 滑动窗口机制 ->
- 确认机制 -> 确认帧
- 重传机制 -> 超时重传
- 帧编号 -> nbit给帧编号;
- 特殊规则 -> 确认帧 -> 接收方可以只返回最后一个帧的确认帧ACK_i(ACK_i表示已接收i号帧及其之前的所有帧; 可以不是发送方滑动窗口的尾帧, 此时便是发送方的滑动窗口少前进n帧再发一遍) 超时重传 -> 发送方超时未收到ACK_i, 则重传i号帧, 及其之后的所有帧; 可能该帧”非法”, 此时接收方会再发合适的ACK_i
如果不满足, 显然数据帧在超时重传时可能直接少一组错位; 满足改条件的确认帧超时, 重传一定落在窗口外
选择重传协议(SR)
- 滑动窗口机制 ->
- 确认机制 -> 确认帧ACK_i, 且不支持累计确认
- 重传机制 -> 超时重传, 否认帧后立即重传
- 帧编号 -> nbit给帧编号;
- 特殊规则 -> 否认帧NAK_i -> 检测出i号帧有差错, 需要丢弃该帧, 并返回否认帧NAK_i 请求重传 -> 收到NAK_i后重传i号帧 要求, 接收窗口小于发送窗口
三种协议的信道利用率
- S-W协议中, 理想情况下信道利用率为
- GBN,SR两种协议, 理想情况下信道利用率为
信道利用率最大为1, 但是公式2计算可能大于1; 信道利用率的意义其实是实际传输速率和理想传输速率的比值
协议的特点
- S-W协议不属于滑动窗口协议; 滑动窗口协议 -> 任意时刻, 发送方维护一组连续的, 允许发送的帧序号, 成为发送窗口
- ACK -> ACKnowledge for frame; NAK -> Negative AKnowledge for frame
- ARQ协议,Automatic Repeat Request,自动重传请求, 包括以上三种; 如果是连续ARQ协议就是指的后两者
- 时, 接收方接收到帧后才允许接受下一帧, 能保证帧的有序接收
- 在数据链路层的滑动窗口协议中, 窗口大小在传输过程中是固定的(区别与传输层)
可靠传输机制
- 确认机制
- 超时重传机制
总结
- 在求最值时, 列出式子再看正负相关关系 -> 比如, 数据帧长不定时, 信道利用率与数据帧长成正比, 那么在最高的信道利用率情况下, 求帧编号位数就需要按照最小的数据帧长来算
- 需要注意有没有确认帧长
- 由于在相同的帧序号位数下, 滑动窗口协议中SR较GBN协议发送窗口小, N小, 则信道利用率上限也小